The invention relates generally to data buffering and more particularly to a method and apparatus for monitoring buffer contents in a data communications switch.
Communication networks are known to include a plurality of communication switches that provide communication links between end users. Each switch within the network may receive data from a number of other switches in the network, and each switch may provide data that it receives to a plurality of subsequent destination switches. In order to control the data flow in the network, each of the switches may include one or more points at which data is buffered as it traverses through the switch. This allows the switches to regulate the data traffic within the switch and to other switches in the network such that bandwidth limitations across the various links are not exceeded. Data may also be buffered within switches to ensure that bandwidth available over various links in the network is fully utilized when xe2x80x9cburstyxe2x80x9d data is presented to the switch for transmission.
At each buffering point, data units, which may be portions of packets, cells, or other units of data, are examined to determine a particular connection to which they correspond, which may be indicated by a connection identifier. The connection identifier is then used to reference a context table that stores a partition group and a loss group for each connection. The partition group determines within which partition of the buffer data for that connection is stored. Loss groups, which are subsets of partition groups, are used to monitor such things as congestion at the buffering point. In one example, a partition group may be dedicated to constant bit rate (CBR) traffic, where numerous loss groups are included within that partition group where each loss group corresponds to a different set of CBR connections. Partition groups and loss groups are more thoroughly defined in a co-pending U.S. patent application Ser. No. 09/339,844 entitled xe2x80x9cFlexible Threshold Based Buffering System For Use In Digital Communication Devicesxe2x80x9d, which was filed on Jun. 25, 1999 and is assigned to the same assignee as the present application.
In such prior art systems, congestion levels for different loss groups are typically determined based on counters that monitor the input and output of data units corresponding to that particular loss group with respect to the buffering point. Thus, as cells corresponding to that loss group are received, the counter is incremented, and when cells corresponding to that loss group are dequeued from the buffer for forwarding, the counter is decremented. As such, the state of the counter at any one point will indicate the number of data units for that particular loss group currently stored within the buffer. Although these loss groups give some indication as to congestion, the congestion monitoring performed by these loss groups is directly tied to the buffering system, as loss groups are subsets of partition groups. Thus, each loss group can only contain connections that are included in the same partition group. As such, no monitoring of multiple connections that exist in different partition groups is possible. Similarly, no monitoring of the congestion for a single connection is possible, unless the entire loss group is dedicated to the connection.
Therefore, a need exists for a method and apparatus for buffering data within a switch that allows for more flexible monitoring of the buffered contents.